#pragma once
#include <string>

#ifndef MRAYAPI
#ifdef MRAYDLL
#define MRAYAPI __declspec(dllexport)
#else
#define MRAYAPI __declspec(dllimport)
#endif
#endif

namespace mray{

struct World;

struct MRAYAPI MRay{

	MRay(const std::string& sceneXMLPath);
	~MRay();

	int width();
	int height();
	unsigned char* render(int cameraId);

	enum Move : unsigned char{
		//for move only
		Forward, Backward, 
		//for move and rotate
		Up, Down, Left, Right,
	};

	void move(int cameraId, float dis, Move act);
	void rotate(int cameraId, float radian, Move act);

private:
	World* mp_world;
};

}